為達到資料共享(Data Sharing),需使用應用程式讀取使用者的需求,利用PHP,透過SQL指令來存取資料庫裡的資料,依需求查詢,並將查詢結果回傳給使用者。
要開啟Apache,使PHP程式上傳至Apache後,進一步連線資料庫。
PHP透過new mysqli()函式來連線資料庫
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "online_store";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("連線失敗: " . mysqli_connect_error());
}
else
echo("連線成功");
mysqli_close($conn);
?>
$servername = "localhost";
代表主機位置$username = "root";
代表登入帳號$password = "";
代表登入密碼,這裡為空字串$dbname = "online_store";
資料庫的名稱$conn = new mysqli($servername, $username, $password, $dbname);
用來連結資料庫mysqli_close($conn);
關閉資料庫
建立資料表
剛剛已經連線online_store資料庫了,現在要在裡面建立一個新的資料表,叫做commodity。
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "online_store";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("連線失敗: " . mysqli_connect_error());
}
else
echo("連線成功");
$sql = "CREATE TABLE commodity (
id INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
c_name VARCHAR(30) NOT NULL,
price INT(10) NOT NULL,
reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)";
if (mysqli_query($conn, $sql)) {
echo "commodity資料表創建成功";
} else {
echo "commodity資料表創建失敗" . mysqli_error($conn);
}
mysqli_close($conn);
?>
將欄位的屬性設定好,下面的if-else用來判斷是否建立成功。
新增紀錄到commodity資料表內
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "online_store";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("連線失敗: " . mysqli_connect_error());
}
//else
//echo("連線成功");
$sql = "INSERT INTO commodity (id,c_name,price)
VALUES (1,'apple',25)";
if (mysqli_query($conn, $sql)) {
echo "資料輸入成功";
} else {
echo "錯誤:" . $sql . "<br>" . mysqli_error($conn);
}
mysqli_close($conn);
?>
$sql = "INSERT INTO commodity (id,c_name,price)
找到指定的資料表,後面括號為其各個欄位名稱。
VALUES (1,'apple',25)";
根據欄位屬性,輸入要存進去的值。
並判斷指令是否成功。
查詢資料
剛剛只有輸入一筆資料,這邊再補兩筆XD。
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "online_store";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("連線失敗: " . mysqli_connect_error());
}
//else
//echo("連線成功");
$sql = "SELECT id,c_name,price FROM commodity";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
// output data of each row
echo"資料表查詢結果";
echo "<table border=1>";
echo"<tr>";
echo"<td>"."id"."</td>"."<td>"."c_name"."</td>"."<td>"."price"."</td>";
echo"</tr>";
while($row = mysqli_fetch_assoc($result)) {
echo"<tr>";
echo"<td>".$row["id"]."</td>" ."<td>". $row["c_name"]."</td>"."<td>". $row["price"]."</td>". "<br>";
echo"</tr>";
}
echo"</table>";
} else {
echo "0 results";
}
mysqli_close($conn);
?>
$sql = "SELECT id,c_name,price FROM commodity";
代表要查詢的欄位資料,我這邊是整個資料表都查。
$result = mysqli_query($conn, $sql);
執行查詢
用迴圈將欄位資料跑一遍,印出資料,這邊有用表格排列。
除了查詢全部,只要改一下指令,也能做部分查詢。
參考資料:
w3schools_PHP_Connect_to_MySQL
書籍「動畫圖解資料庫系統理論」。